#include<vector>
#include<queue>
using namespace std;

//vector<int> twoSum(vector<int>& price, int target) {
//    int left = 0, right = price.size() - 1;
//    vector<int> ret;
//    while (left < right)
//    {
//        int sum = price[left] + price[right];
//        if (sum > target) right--;
//        else if (sum < target) left++;
//        else
//        {
//            ret.push_back(price[left]);
//            ret.push_back(price[right]);
//            break;
//        }
//    }
//    return ret;
//}

int maxProduct(vector<int>& nums) {
    // write code here
    int n = nums.size();
    int ret = nums[0];
    vector<int> dp(n);
    dp[0] = nums[0];
    for (int i = 1; i < n; i++)
    {
        dp[i] = dp[i - 1] * nums[i];
        ret = max(ret, dp[i]);
    }

    return ret;
}

vector<vector<int> > generate(int numRows) {
    // write code here
    vector<vector<int>> vv(numRows);
    for (int i = 0; i < numRows; i++)
    {
        vv[i].resize(i + 1, 1);
    }

    for (int i = 2; i < numRows; i++)
        for (int j = 1; j < i - 1; j++)
            vv[i][j] = vv[i - 1][j] + vv[i - 1][j - 1];

    return vv;
}

int main()
{
    vector<int> v{ -3,0,-2 };

    queue<char> q;
    q.push('n');
    q.push('i');
    q.push('g');
    q.pop();
    q.push('r');
    q.push('t');
    q.push('n');
    q.pop();
    q.push('s');

    generate(0);

    maxProduct(v);

    return 0;
}